package com.ophiux.utils.common;


/**
 * 说明：隐藏号码工具类<br>
 * <h1>创 建 人: hehailong</h1><br>
 * 创建日期: 2018年11月27日 上午11:30:53<br>
 * 修改记录：
 */
public class HideDataUtil {
	/**
	 * 说明：方法描述 隐藏银行卡号中间的字符串（使用*号），显示前四后四<br>
	 * 创 建 人: <b>hehailong</b>
	 * @param cardNo
	 * @return
	 */
    public static String hideCardNo(String cardNo) {
    	 if(StringUtil.isEmpty(cardNo)) {
             return cardNo;
         }

        int length = cardNo.length();
        int beforeLength = 4;
        int afterLength = 4;
        //替换字符串，当前使用“*”
        String replaceSymbol = "*";
        StringBuffer sb = new StringBuffer();
        for(int i=0; i<length; i++) {
            if(i < beforeLength || i >= (length - afterLength)) {
                sb.append(cardNo.charAt(i));
            } else {
                sb.append(replaceSymbol);
            }
        }

        return sb.toString();
    }

    /**
     * 说明：方法描述 隐藏手机号中间位置字符，显示前三后三个字符<br>
     * 创 建 人: <b>hehailong</b>
     * @param phoneNo	电话号码
     * @return
     */
    public static String hidePhoneNo(String phoneNo) {
    	return hidePhoneNo(phoneNo,3,4);
    }
    
    /**
     * 说明：方法描述 隐藏手机号中间位置字符<br>
     * 创 建 人: <b>hehailong</b>
     * @param phoneNo	电话号码
     * @param beforeLength	前面显示几位
     * @param afterLength	后面显示几位
     * @return
     */
    public static String hidePhoneNo(String phoneNo,int beforeLength,int afterLength) {
    	if(StringUtil.isEmpty(phoneNo)) {
            return phoneNo;
        }

        int length = phoneNo.length();
        //替换字符串，当前使用“*”
        String replaceSymbol = "*";
        StringBuffer sb = new StringBuffer();
        for(int i=0; i<length; i++) {
            if(i < beforeLength || i >= (length - afterLength)) {
                sb.append(phoneNo.charAt(i));
            } else {
                sb.append(replaceSymbol);
            }
        }
        return sb.toString();
    }
    
    public static void main(String[] args) {
    	System.out.println(hidePhoneNo("13896737541",11,0));
	}
    
}
